/**
 * @author 刘鹏飞
 * @ClassName FunctionOverload
 * @Date 2024/12/2 19:58
 * @Created by 刘鹏飞
 * @Description 方法的重载
 * 方法构成重载的条件：
 *      形参列表不同的含义: 形参类型，形参个数，形参顺序不同
 *      只有返回值不同不构成方法的重载
 *      int a(String str){} 和 void a(String str){}
 *      只有形参的名称不同的，不够成方法的重载
 *      int a(String str){} int a(String s) 不构成方法的重载
 *
 *  方法在一定程度上允许重复：
 *    允许存在 方法名相同，参数不同的多个方法(与返回值类型和修饰符无关)
 *
 *
 */
public class FunctionOverload {


    public static double add(int n1,int n2){
        double sum=n1+n2;
        return sum;
    }




    //  1. 方法名相同，参数个数不同 构成重载
    public static double add(int n1,int n2,int n3){
        double sum=n1+n2;
        return sum;
    }


    //  2. 方法名相同，参数类型不同，构成重载
    public static double add(double n1,int n2,int n3){
        double sum=n1+n2;
        return sum;
    }



    // 3. 方法名相同，参数顺序不同，构成重载
    public static double add(int n2,double n1,int n3){
        double sum=n1+n2;
        return sum;
    }

/*    // 4. 只有修饰符不同，不构成重载
    public  double add(int n2,double n1,int n3){
        double sum=n1+n2;
        return sum;
    }

    // 5. 只有返回值类型不同不构成重载
    public static int add(int n2,double n1,int n3){
        int sum= (int) (n1 + n2);
        return sum;
    }

    // 6. 只有参数名称不同，不构成方法的重载
    public static double add(int n4,double n1,int n3){
        double sum=n1+n4;
        return sum;
    }*/

}
